{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "#本章需导入的模块\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "plt.rcParams['font.sans-serif']=['SimHei']  #解决中文显示乱码问题\n",
    "plt.rcParams['axes.unicode_minus']=False\n",
    "import warnings\n",
    "warnings.filterwarnings(action = 'ignore')\n",
    "from scipy.stats import beta\n",
    "from sklearn.naive_bayes import GaussianNB\n",
    "import sklearn.linear_model as LM\n",
    "from sklearn.model_selection import cross_val_score,cross_validate,train_test_split\n",
    "from sklearn.metrics import classification_report\n",
    "from sklearn.metrics import roc_curve, auc,accuracy_score,precision_recall_curve"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "评价模型结果：\n",
      "               precision    recall  f1-score   support\n",
      "\n",
      "           0       0.86      0.94      0.90      1204\n",
      "           1       0.90      0.79      0.84       892\n",
      "\n",
      "    accuracy                           0.88      2096\n",
      "   macro avg       0.88      0.87      0.87      2096\n",
      "weighted avg       0.88      0.88      0.87      2096\n",
      "\n"
     ]
    }
   ],
   "source": [
    "data=pd.read_excel('北京市空气质量数据.xlsx')\n",
    "data=data.replace(0,np.NaN)\n",
    "data=data.dropna()\n",
    "data['有无污染']=data['质量等级'].map({'优':0,'良':0,'轻度污染':1,'中度污染':1,'重度污染':1,'严重污染':1})\n",
    "data['有无污染'].value_counts()\n",
    "X=data.loc[:,['PM2.5','PM10','SO2','CO','NO2','O3']]\n",
    "Y=data.loc[:,'有无污染']\n",
    "\n",
    "modelNB = GaussianNB()\n",
    "modelNB.fit(X, Y)\n",
    "modelLR=LM.LogisticRegression()\n",
    "modelLR.fit(X,Y)\n",
    "print('评价模型结果：\\n',classification_report(Y,modelNB.predict(X)))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,axes=plt.subplots(nrows=1,ncols=2,figsize=(10,4))\n",
    "fpr,tpr,thresholds = roc_curve(Y,modelNB.predict_proba(X)[:,1],pos_label=1) \n",
    "fpr1,tpr1,thresholds1 = roc_curve(Y,modelLR.predict_proba(X)[:,1],pos_label=1) \n",
    "axes[0].plot(fpr, tpr, color='r',label='贝叶斯ROC(AUC = %0.5f)' % auc(fpr,tpr)) \n",
    "axes[0].plot(fpr1, tpr1, color='blue',linestyle='-.',label='Logistic回归ROC(AUC = %0.5f)' % auc(fpr1,tpr1)) \n",
    "axes[0].plot([0, 1], [0, 1], color='navy', linewidth=2, linestyle='--')\n",
    "axes[0].set_xlim([-0.01, 1.01])\n",
    "axes[0].set_ylim([-0.01, 1.01])\n",
    "axes[0].set_xlabel('FPR')\n",
    "axes[0].set_ylabel('TPR')\n",
    "axes[0].set_title('两个分类模型的ROC曲线')\n",
    "axes[0].legend(loc=\"lower right\")\n",
    "\n",
    "pre, rec, thresholds = precision_recall_curve(Y,modelNB.predict_proba(X)[:,1],pos_label=1)\n",
    "pre1, rec1, thresholds1 = precision_recall_curve(Y,modelLR.predict_proba(X)[:,1],pos_label=1)\n",
    "axes[1].plot(rec, pre, color='r',label='贝叶斯总正确率 = %0.3f)' % accuracy_score(Y,modelNB.predict(X))) \n",
    "axes[1].plot(rec1, pre1, color='blue',linestyle='-.',label='Logistic回归总正确率 = %0.3f)' % accuracy_score(Y,modelLR.predict(X))) \n",
    "axes[1].plot([0,1],[1,pre.min()],color='navy', linewidth=2, linestyle='--')\n",
    "axes[1].set_xlim([-0.01, 1.01])\n",
    "axes[1].set_ylim([pre.min()-0.01, 1.01])\n",
    "axes[1].set_xlabel('查全率R')\n",
    "axes[1].set_ylabel('查准率P')\n",
    "axes[1].set_title('两个分类模型的P-R曲线')\n",
    "axes[1].legend(loc='lower left')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "说明：\n",
    "1、这里基于第1章的北京市空气质量监测数据，采用朴素贝叶斯分类器，对是否有污染进行二分类预测。\n",
    "2、采用classification_report对分类器进行评价。其中，Precision、recall、f1-score分别是查准率、查全率和F1得分。support为样本量。查准率、查全率和F1得分不仅针对1类，也可以针对0类计算。accuracy为预测正确率。 macro avg和weighted avg为各指标的简单平均和样本加权平均，可作为模型整体预测性能的评价。\n",
    "3、各评价指标，以及ROC曲线和P-R曲线都表明，朴素贝叶斯分类器对该问题的预测表现良好,但略劣于Logistic回归。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
